package chat;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import registro.Usuario;

import es.cea.core.scopes.Contexto;
import es.cea.core.scopes.Sesion;

public class TestChat {
	
	protected final Log logger = LogFactory.getLog(getClass());

	ServicioChat sv;
	
	@BeforeMethod
	public void inicializa(){
		
		sv = new ServicioChat();
		sv.ses = new Sesion();
		sv.context = new Contexto();
		
		Usuario user = new Usuario();
		user.nombre = "Usuario 1";
		sv.ses.addAtributo("usuario", user);
		
		Chat chat = new Chat();
		sv.context.addAtributo("chat", chat);
	}
	
	@Test
	public void pruebaFuncionaCorrecto(){
		
		try{
			sv.publicaMensaje("ESTE MENSAJE TIENE QUE IR AL CONTEXTO");
		} catch (MensajeBlancoException ex){
			assert(false): "Mensaje en blanco";
		} catch (MensajeRepetidoException ex){
			assert(false): "Mensaje en repetido";
		}
		
		logger.debug(sv.context.getAtributo("chat"));
	}
	
	@Test
	public void pruebaMensajeRepetido(){
		
		try{
			sv.publicaMensaje("ESTE MENSAJE TIENE QUE IR AL CONTEXTO");
			sv.publicaMensaje("ESTE MENSAJE TIENE QUE IR AL CONTEXTO");
		} catch (MensajeBlancoException ex){
			logger.error("No deberia pasar por aqui");
			assert(false): "Mensaje en blanco";
		} catch (MensajeRepetidoException ex){
			logger.error("Deberia entrar aqui, mensaje repetido");
			assert!(false): "Mensaje repetido";
		}
		
		logger.debug(sv.context.getAtributo("chat"));

	}
	
	
	@Test
	public void pruebaMensajeBlanco(){
		
		try{
			sv.publicaMensaje("");
		} catch (MensajeBlancoException ex){
			logger.error("Deberia entrar aqui, mensaje en blanco");
			assert!(false): "Mensaje en blanco";
		} catch (MensajeRepetidoException ex){
			logger.error("No deberia pasar por aqui");
			assert(false): "Mensaje repetido";
		}
		
//		logger.debug(sv.context.getAtributo("chat"));

	}
	
	
}
